/*eslint-disable*/
import express from 'express';
import * as dotenv from 'dotenv';
import OpenAI from 'openai';
import axios from 'axios';
import { Buffer } from 'buffer';

dotenv.config();

const router = express.Router();

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: 'https://api.302.ai/v1' // 确保使用正确的 API 端点
});

router.route('/').get((req, res) => {
  res.status(200).json({ message: "Hello from DALL.E ROUTES" });
});

router.route('/').post(async (req, res) => {
  const { prompt } = req.body;
  try {
    // 调用 OpenAI 的 images.generate 方法生成图片
    const response = await openai.images.generate({
        model: "dall-e-3", // 使用的模型
        prompt: prompt, // 文本描述
        n: 1, // 生成的图片数量
        size: "1024x1024", // 图片大小
    });
    console.log(response);
    const imageUrl = response.data[0].url;
    console.log(imageUrl);
    // 发送 HTTP 请求获取图片内容
    const imageResponse = await axios.get(imageUrl, { responseType: 'arraybuffer' });
    // 将图片内容转换为 Base64 编码
    const imageBase64 = Buffer.from(imageResponse.data).toString('base64');
    // 将 Base64 编码作为响应发送给前端
    res.status(200).json({ photo:imageBase64 });
  } catch (error) {
    // 捕获并处理可能出现的错误
    console.error('Error generating image:', error);
    res.status(500).json({ error: 'Failed to generate image' });
  }
});

export default router;